package com.atguigu.spzx.manager.service;

import com.atguigu.spzx.model.dto.product.ProductDto;
import com.atguigu.spzx.model.entity.product.Product;
import com.github.pagehelper.PageInfo;

/**
 * @ClassName: ProductService
 * @Package: com.atguigu.spzx.manager.service
 * @Description
 * @Author 孤妤
 * @Date: 2023/12/8 16:58
 */
public interface ProductService {
    /**
     * @description: 商品管理分页
     * @param: 前端传的分页页码及页数及根据id搜索参数
     **/
    PageInfo<Product> findProductPage(Integer pageNum, Integer pageSize, ProductDto productDto);
    /**
     * @description: 添加商品管理
     * @param: 前端添加商品管理时传入的对象
     **/
    void addProduct(Product product);
    /**
     * @description: 查询商品管理信息
     * @param: 前端修改商品管理信息时当前的商品管理id
     **/
    Product findProductById(Long id);
    /**
     * @description: 修改商品管理信息
     * @param: 前端修改商品管理信息时当前商品管理的对象
     **/
    void changeProductById(Product product);
    /**
     * @description: 删除商品管理信息
     * @param: 前端删除商品管理信息时当前商品管理的id
     **/
    void removeProductById(Long id);
    /**
     * @description: 商品的上架与下架
     * @param: 1:上架,-1:下架,0:未上架
     **/
    Product changeProductStatusById(Long id, Integer status);
    /**
     * @description: 商品的审批
     * @param: 0:初始值,1:通过,-1:未通过,商品审批的信息
     **/
    Product changeProductAuditStatusById(Long id, Integer auditStatus);
}
